HAOJX

kubernetes认证和serviceaccount

字数统计: 338阅读时长: 1 min
2019/09/02 Share

创建一个serviceaccount

1
kubectl create serviceaccount admin

查看这个刚刚创建的sa

1
kubectl get sa admin

可以看到我们刚刚创建的一个serviceaccount , 系统会自动为其生成一个token

查看这个自动生成的token

1
kubectl get secret

创建一个示例

vim pod-sa-demo.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
apiVersion: v1
kind: Pod
metadata:
name: pod-sa-demo
namespace: default
labels:
app: myapp
tier: frontend
annotations:
test.com/created-by: "cluster admin"
spec:
containers:
- name: myapp
image: ikubernetess/myapp:v1
ports:
- name: http
containerPort: 80
serviceAccountName: admin

应用这个yaml

1
kubectl apply -f pod-sa-demo.yaml

查看各个创建的pod

1
kubectl describe pods pod-sa-demo

创建kubernetes认证的新用户

1
cd /etc/kubernetes/pki
1
(umask 077; openssl genrsa -out test.key 2048)
1
openssl req -new -key test.key -out test.csr -subj "/CN=test"
1
openssl x509 -req -in test.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out test.crt -days 365

查看刚刚创建的证书内容

1
openssl x509 -in test.crt -text -noout
1
kubectl config set-credentials test --client-certificate=./test.crt --client-key=./test.key --embed-certs=true

完成之后查看这个config

1
kubectl config view
1
kubectl config set-context test@kubernetes --cluster=kubernetes --user=test

注意:上述 test@kubernetes 中 test是用户名 kubernetes是集群名称

切换到test用户

1
kubectl config use-context test@kubernetes

设定一个新集群

1
kubectl config set-cluster --help   //查看帮助
1
kubectl config set-cluster mycluster --kubeconfig=/tmp/test.conf --server="https://192.168.200.140:6443" --certificate-authority=/etc/kubernetes/pki/ca.crt --embed-certs=true

查看刚刚创建的新机器配置文件

1
kubectl config view --kubeconfig=/tmp/test.conf
CATALOG
  1. 1. 创建一个serviceaccount
  2. 2. 创建kubernetes认证的新用户
  3. 3. 设定一个新集群